<?php
namespace app\admin\controller;

use \think\Cache;
use think\Controller;
use think\Loader;
use \think\Cookie;
use think\Validate;
use think\Request;
use \think\Session;
use app\admin\api\login;
use app\admin\api\Register;




/**
 * 公共类,包含登录，退出，清楚缓存等公共服务
 */
class Common extends Controller
{
    /**
     * 清除全部缓存
     * @return [type] [description]
     */
    public function clear()
    {
        if(false == Cache::clear()) {
            return $this->error('清除缓存失败');
        } else {
            return $this->success('清除缓存成功');
        }
    }


    /**
     * 登录
     * @return [type] [description]
     */
    public function login()
    {
        if(Session::has('admin') == false) {
            if($this->request->isPost()) {

                //是登录操作
                $post = $this->request->post();

                //验证  唯一规则： 表名，字段名，排除主键值，主键名
                $validate = new \think\Validate([
                    ['username', 'require|alphaDash', '用户名不能为空|用户名格式只能是字母、数字、——或_'],
                    ['password', 'require', '密码不能为空'],
//                    ['captcha','require|captcha','验证码不能为空|验证码不正确'],
                ]);

                //验证部分数据合法性
                if (!$validate->check($post)) {
                    $this->error('提交失败：' . $validate->getError());
                }

                //调用登录接口
                $res = new login();
                $result = $res->index($post);

                if($result == 0){
                    $this->success('登录成功,正在跳转...','admin/index/index');
                }else{
                    $this->error('用户名或者密码错误');
                }

            } else {
                return $this->fetch();
            }
        } else {
            $this->redirect('admin/index/index');
        }
    }


    /**
     * 注册
     * @return [type] [description]
     */
    public function register()
    {
        if($this->request->isPost()) {

            //是注册操作
            $post = $this->request->post();

            //验证  唯一规则： 表名，字段名，排除主键值，主键名
            $validate = new \think\Validate([
                ['contact', 'require', '联系人不能为空'],
                ['password', 'require', '密码不能为空'],
                ['email', 'require|email', '邮箱不能为空|邮箱格式不正确'],
                ['mobile','require|max:11|/^1[3-8]{1}[0-9]{9}$/','请输入手机号码|手机号码最多不能超过11个字符|手机号码格式不正确'],
                ['verification_code', 'require', '验证码不能为空'],
                ['institution', 'require', '机构不能为空'],
                ['address', 'require', '地址不能为空'],
                ]);

            //验证部分数据合法性
            if (!$validate->check($post)) {
                $this->error('提交失败：' . $validate->getError());
            }

            //调用注册接口
            $res = new Register();
            $result = $res->index($post);

            if($result == 0){
                $this->success('注册成功,正在跳转...','admin/index/index');
            }else{
                $this->error("$result");
            }

        }else{
            return $this->fetch();
        }
    }


    /**
     * 管理员退出，清除名字为admin的session
     * @return [type] [description]
     */
    public function logout()
    {
        Session::delete('user');
        if(Session::has('user')) {
            return $this->error('退出失败');
        } else {
            return $this->success('正在退出...','admin/common/login');
        }
    }


    /**
     * 上传方法
     * @return [type] [description]
     */
    public function upload(Request $request)
    {

        //获取表单上传文件
        $file = $this->request->file('file');
        if (empty($file)) {
            $this->error('请选择上传文件');
        }
        //移动到框架应用根目录/public/uploads/ 目录下
        $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
        if ($info) {
            $url = $info->getFilename();
            $this->success("$url");


        } else {
            //上传失败获取错误信息
            $this->error($file->getError());
        }
    }


    public function test(){

        //获取数据
        $url = 'http://cc-api.85do.com/client/login';
        $dt['email'] = '17859907121@163.com';
        $dt['mobile'] = '17859907120';
        $dt['password'] = '123456';
        $dt['verification_code'] = '17859907121';
        $dt['contact'] = '123456';
        $dt['institution'] = '17859907121';
        $dt['address'] = '123456';




        $res = new register();
        $result = $res->index($dt);

        //请求接口信息
//        $data = curl($url,$dt);
//        $res = json_decode($data);

        var_dump($result);
    }

}